package org.mebusw.lostcities.vo;

import org.mebusw.vo.Card;

/**
 * A card played in the Lost Cities game.<br>
 * NOTE: Be careful of the byte align problem occurred in serializing
 * 
 * @author j1shen
 * 
 */
public class LCCard extends Card {
	public final static boolean InvestCard = true;
	public final static boolean NumberCard = false;
	public final static int UNKNOWN_CARDID = -1;
	public final static int NO_OWNER = -1;
	public final static int IN_POOL = -2;
   public final static int IN_DISCARD = -3;	
	public final static int ARCTIC = 0;
	public final static int ATALANTIS = 1;
	public final static int CHINA = 2;
	public final static int EGYPT = 3;
	public final static int MAYA = 4;
	public final static int CIVILIZATIONS = 5;
	

	@Deprecated
	public enum Civilizations {
		Arctic, Atalantis, China, Egypt, Maya;
	}

	/** 2~10 and 0 as '$' */
	private int value;

	/** id of the player who owns this card */
	private int owner;

	/** used to identify in JSP/Flex, 0~59, PLACE_HOLDER for place holder */
	private int cardId;

	/** it's Investment Card or not */
	private boolean isInvestCard;

	/** category of civilizations */
	private int civilization;

	/**
	 * 
	 * @param value
	 *            Number of Card.
	 * @param cardId
	 *            Use to trace card uniquely.
	 * @param isInvestCard
	 *            Investment Card or not.
	 * @param owner
	 *            owner player or in pool.
	 * @param civilization
	 *            civilization.
	 */
	public LCCard(int value, int cardId, boolean isInvestCard, int owner,
			int civilization) {
		this.value = value;
		this.cardId = cardId;
		this.owner = owner;
		this.isInvestCard = isInvestCard;
		this.civilization = civilization;
	}

	public LCCard() {

	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

	public int getOwner() {
		return owner;
	}

	public void setOwner(int owner) {
		this.owner = owner;
	}

	public int getCardId() {
		return cardId;
	}

	public void setCardId(int cardId) {
		this.cardId = cardId;
	}

	public boolean isInvestCard() {
		return isInvestCard;
	}

	public void setInvestCard(boolean isInvestCard) {
		this.isInvestCard = isInvestCard;
	}

	public int getCivilization() {
		return civilization;
	}

	public void setCivilization(int civilization) {
		this.civilization = civilization;
	}

}
